#pragma once
#include "RenderExecutant.h"

namespace Fysics
{
	class RenderCommand
	{
	private:
		static RenderExecutant* s_Executant;
	public:
		static void SetClearColor(const glm::vec4& color)
		{
			s_Executant->SetClearColor(color);
		}

		static void Clear()
		{
			s_Executant->Clear();
		}

		static void CloseDepthTest()
		{
			s_Executant->CloseDepthTest();
		}

		static void OpenDepthTest()
		{
			s_Executant->OpenDepthTest();
		}

		static void DrawIndexed(const VertexArray* vertexArray)
		{
			s_Executant->DrawIndexed(vertexArray);
		}

		static void RenderSide(int side, int screenWidth, int screenHeight)
		{
			s_Executant->RenderSide(side, screenWidth, screenHeight);
		}

		static void DeleteExecutant()
		{
			delete s_Executant;
		}

		static void DrawLine(const VertexArray* vertexArray, int width)
		{
			s_Executant->DrawLine(vertexArray, width);
		}

		static void DrawPoints(const VertexArray* vertexArray, int radius)
		{
			s_Executant->DrawPoints(vertexArray, radius);
		}
	};
}